var tableIns = null;
function layuiTable(tableId,url,cols,title,searchFormID,windowWidth='800px',windowHeight='700px') {
    layui.config({
        base: '/static/admin/' //静态资源所在路径
    }).extend({
        index: 'laymod/index' //主入口模块
    }).use(['index', 'table','form'], function(){
        var admin = layui.admin,table = layui.table,$ = layui.$,form = layui.form;

        tableIns = table.render({
            elem: '#'+tableId
            ,autoSort: false //禁用前端自动排序。注意：该参数为 layui 2.4.4 新增
            ,url: url
            ,method: 'POST'
            ,toolbar: '#'+tableId+'-toolbar'
            ,title: title
            //,totalRow: true
            ,cols: cols
            ,page: true
            ,cellMinWidth: 10
            ,even: true //开启隔行背景
            //,size: 'sm' //小尺寸的表格
            //,skin: 'line' //行边框风格
            ,limit: 15
            ,response:{
                statusCode:1
            }
        });

        //头工具栏事件
        table.on('toolbar('+tableId+')', function(obj){
            var dataset = obj.config.elem.context.activeElement.dataset;
            var checkStatus = table.checkStatus(obj.config.id);
            switch(obj.event){
                case 'add':
                    layer.open({
                        type: 2,
                        title: '添加',
                        shadeClose: true,
                        maxmin: true, //开启最大化最小化按钮
                        area: [windowWidth, windowHeight],
                        content: url.substring(0,url.length-4) + 'add'
                    });
                    break;
                case 'edit':
                    var data = checkStatus.data;
                    if(data.length<=0){
                        layer.alert('请勾选要修改的记录', {icon: 5});
                        return false;
                    }
                    layer.open({
                        type: 2,
                        title: '修改',
                        shadeClose: true,
                        maxmin: true, //开启最大化最小化按钮
                        area: [windowWidth, windowHeight],
                        content: url.substring(0,url.length-4) + 'edit/id/'+data[0].id
                    });
                    break;
                case 'delete':
                    //layer.msg(checkStatus.isAll ? '全选': '未全选');
                    var data = checkStatus.data;
                    if(data.length<=0){
                        layer.alert('请勾选要删除的记录', {icon: 5});
                        return false;
                    }
                    var ids = [];
                    $(data).each(function(i) {
                        ids[i] = data[i]['id'];
                    });

                    $.post(url.substring(0,url.length-4) + 'delete', {ids:ids}, function(res) {
                        if (res.code) {
                            //询问框
                            tableIns.reload();
                            layer.msg(res.msg,{time:2000});
                        } else {
                            //信息框
                            layer.open({
                                content : res.msg,
                                btn : '我知道了'
                            });
                        }
                    },'json');
                    break;
                case 'modify':
                    //layer.msg(checkStatus.isAll ? '全选': '未全选');
                    var data = checkStatus.data;
                    if(data.length<=0){
                        layer.alert('请勾选要修改的记录', {icon: 5});
                        return false;
                    }

                    if(!dataset.key){
                        layer.alert('没有要修改的键', {icon: 5});
                        return false;
                    }

                    if(dataset.value==undefined){
                        layer.alert('没有要修改的值', {icon: 5});
                        return false;
                    }

                    var key = dataset.key;
                    var value = dataset.value;
                    var ids = [];
                    $(data).each(function(i) {
                        ids[i] = data[i]['id'];
                    });

                    $.post(url.substring(0,url.length-4) + 'modify', {id:ids,key:key,value:value}, function(res) {
                        if (res.code) {
                            //询问框
                            tableIns.reload();
                            layer.msg(res.msg,{time:2000});
                        } else {
                            //信息框
                            layer.open({
                                content : res.msg,
                                btn : '我知道了'
                            });
                        }
                    },'json');
                    break;
            };
        });

        //监听排序事件
        table.on('sort('+tableId+')', function(obj){
            table.reload(tableId, {
                initSort: obj //记录初始排序，如果不设的话，将无法标记表头的排序状态。
                ,where: { //请求参数（注意：这里面的参数可任意定义，并非下面固定的格式）
                    field: obj.field //排序字段
                    ,order: obj.type //排序方式
                }
            });
        });

        //监听搜索表单提交
        form.on('submit('+searchFormID+')', function(data){
            /*layer.msg(JSON.stringify(data.field));*/
            var where = data.field;
            tableIns.reload({where:where});
            return false;
        });
    });
}

/**
 * 状态格式化
 * @param row
 * @returns {string}
 */
function statusFormat(value){
    var str = '';
    if(value){
        str = '<font color="green">启用</font>';
    }else{
        str = '<font color="red">禁用</font>';
    }
    return str;
}

/**
 * 是否格式化
 * @param row
 * @returns {string}
 */
function isNoFormat(val){
    var str = '';
    if(val){
        str = '<font color="green">是</font>';
    }else{
        str = '<font color="red">否</font>';
    }
    return str;
}
